home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1993 / Internet Info CD-ROM (Walnut Creek) (1993).iso / inet / internet-drafts / draft-ietf-pip-dns-01.txt < prev    next >
Text File  |  1993-07-08  |  37KB  |  911 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                         P. Francis
  8. INTERNET-DRAFT                                                S. Thomson
  9.                                                                 Bellcore
  10.                                                                June 1993
  11.  
  12.  
  13.                           Use of DNS with Pip
  14.  
  15.  
  16. Status of this Memo
  17.  
  18.    This document is an Internet Draft.  Internet Drafts are working
  19.    documents of the Internet Engineering Task Force (IETF), its Areas,
  20.    and its Working Groups. Note that other groups may also distribute
  21.    working documents as Internet Drafts).
  22.  
  23.    Internet Drafts are draft documents valid for a maximum of six
  24.    months. Internet Drafts may be updated, replaced, or obsoleted by
  25.    other documents at any time.  It is not appropriate to use Internet
  26.    Drafts as reference material or to cite them other than as a "working
  27.    draft" or "work in progress."
  28.  
  29.    Please check the I-D abstract listing contained in each Internet
  30.    Draft directory to learn the current status of this or any other
  31.    Internet Draft.
  32.  
  33.  
  34. Abstract
  35.  
  36.    Pip is an internet protocol intended as the replacement for IP
  37.    version 4.  Pip is a general purpose internet protocol, designed to
  38.    handle all forseeable internet protocol requirements.  This
  39.    specification describes the use of DNS to support Pip.  Because Pip
  40.    carries IDs and addresses separately, and because Pip Addresses are
  41.    variable length, DNS must be modified to support Pip. Also, Pip
  42.    addresses are more likely to change than IP addresses.  To enable DNS
  43.    to still cache aggressively in the presence of address changes, we
  44.    propose adding functionality to DNS to allow resolvers to ask for
  45.    later versions of information when previously returned information is
  46.    found to be out-of-date.  In addition to these necessary
  47.    modifications, we have chosen to add new information to DNS to
  48.    support transition and to support Pip features, such as policy
  49.    routing, mobile hosts and  routing through Public Data Networks.
  50.    Later multicast support will be added as well.
  51.  
  52.  
  53.  
  54.  
  55. Pip WG, Expires December 30, 1993                               [Page 1]
  56.  
  57.  
  58.  
  59.  
  60.  
  61. INTERNET-DRAFT                  Pip DNS                        June 1993
  62.  
  63.  
  64. Acknowledgements
  65.  
  66.    The authors would like to acknowledge Bob Smart and Garrett Wollman
  67.    for their initial work on Pip in DNS.
  68.  
  69. Conventions
  70.  
  71.    All functions in this specification are mandatory.
  72.  
  73.  
  74.  
  75. 1.  INTRODUCTION
  76.  
  77.  
  78.    Pip is an internet protocol intended as the replacement for IP ver-
  79.    sion 4.  Pip is a general purpose internet protocol, designed to han-
  80.    dle all forseeable internet protocol requirements.  This specifica-
  81.    tion describes the use of DNS to support Pip.  Because Pip carries
  82.    IDs and addresses separately, and because Pip Addresses are variable
  83.    length, DNS must be modified to support Pip.  Also, Pip addresses are
  84.    more likely to change than IP addresses.  To enable DNS to still
  85.    cache aggressively in the presence of address changes, we propose
  86.    adding functionality to DNS to allow resolvers to ask for later ver-
  87.    sions of information when previously returned information is found to
  88.    be out-of-date.  In addition to these necessary modifications, we
  89.    have chosen to add new information to DNS to support transition and
  90.    to support Pip features, such as policy routing, mobile hosts and
  91.    routing through Public Data Networks.  Later multicast support will
  92.    be added as well.
  93.  
  94.    In spite of this additional functionality, we retain the fundamental
  95.    DNS paradigm of source-independency (a resource record is returned to
  96.    the requestor no matter who the requestor is).  We also retain the
  97.    fundamental DNS paradigm that the information stored by DNS does not
  98.    change often.
  99.  
  100.    This document is meant to be read in conjunction with RFC 1034 and
  101.    RFC 1035, and is an extension of the latter.  The last draft of this
  102.    document defined new resource records to support the functionality
  103.    mentioned in the above paragraphs. Some of these definitions have
  104.    been updated in this draft and they are motivated in more detail. In
  105.    addition, we discuss not only how DNS is to be used to support the
  106.    transition of hosts from using IP to using Pip, but also how DNS is
  107.    to make the transition itself from storing only IP information to
  108.    storing both IP and Pip information. In this draft, we also propose a
  109.  
  110.  
  111.  
  112. Pip WG, Expires December 30, 1993                               [Page 2]
  113.  
  114.  
  115.  
  116.  
  117.  
  118. INTERNET-DRAFT                  Pip DNS                        June 1993
  119.  
  120.  
  121.    scheme for requesting later versions of resource records using what
  122.    we call "timestamped queries".
  123.  
  124.    This draft is still rough, and subject to change and expansion.  Com-
  125.    ments are very welcome.
  126.  
  127.  
  128.  
  129. 2.  SUMMARY OF PIP DNS INFORMATION
  130.  
  131.  
  132.    The fundamental information that needs to be stored in DNS to support
  133.    Pip includes the following:
  134.  
  135.    1.   One or more Pip identifiers[1] (Pip IDs) per host. Pip identif-
  136.         iers are 64 bits in length and are used to denote the source and
  137.         destination in a Pip packet, typically hosts.  Initially, there
  138.         will be one Pip identifier per host.  Ultimately, there may be
  139.         several Pip identifiers per host, as they may be used to denote
  140.         per-host entities such as processes rather than just the host
  141.         itself.  In any case, Pip identifiers name a host uniquely. At
  142.         the time of writing, it is an open issue whether Pip identifiers
  143.         have hierarchical structure. We assume they do have structure
  144.         here, and that the structure is encoded in the identifier, that
  145.         is, the Pip identifier is self-describing.
  146.  
  147.    2.   Multiple Pip addresses per host[3].  Pip addresses are hierarch-
  148.         ical and provider-rooted. They have a provider part and a sub-
  149.         scriber part, and each part may have multiple levels of hierar-
  150.         chy. Typically, a host will have one private address (used by
  151.         hosts within the same subscriber network) and one or more exter-
  152.         nal addresses, one per provider.
  153.  
  154.  
  155.    In Pip, we choose to use DNS to support transition, mobility, routing
  156.    through Public Data Networks and policy routing[3]. The information
  157.    needed is as follows:
  158.  
  159.    1.   The address of a Pip/IP translator positioned at the border
  160.         between the Pip domain and the IP domain.  This is used in com-
  161.         munications between Pip and IP hosts.  When the destination is
  162.         an IP-only host, the Pip host must address the Pip packet to the
  163.         Pip/IP translator positioned at the border between the IP domain
  164.         and the Pip domain. Note that in the case where both source and
  165.         destination are IP-only with Pip in the middle, the entry Pip/IP
  166.  
  167.  
  168.  
  169. Pip WG, Expires December 30, 1993                               [Page 3]
  170.  
  171.  
  172.  
  173.  
  174.  
  175. INTERNET-DRAFT                  Pip DNS                        June 1993
  176.  
  177.  
  178.         translator must do a DNS query to obtain this information.
  179.  
  180.    2.   One or more Mobile Address Servers.  Pip supports mobility using
  181.         non-mobile hosts or routers to keep track of the location of
  182.         mobile hosts. DNS is used to store the name of the mobile
  183.         address server for each mobile host. In the case where a host is
  184.         predominantly mobile (that is, doesn't have a "normal" reachable
  185.         address), the host may have no Pip addresses stored in DNS. The
  186.         host's mobile address server may be used directly to determine
  187.         the current address of the host.
  188.  
  189.    3.   Public data network address.  This indicates what the public
  190.         data network address is for hosts connected via a  public data
  191.         network (PDN).  This address can be put in an option of the Pip
  192.         header, and subsequently used by the PDN entry Pip router.
  193.  
  194.    4.   Descriptive information associated with the backbone represented
  195.         by (the provider part of) the Pip Address.  The purpose of this
  196.         information is to allow the source to make a policy decision.
  197.         The descriptive informatation includes backbone type (e.g.
  198.         internet) restriction class (e.g. commercial, research), avail-
  199.         able Type of Service (TOS) (e.g. full-motion video, voice, tel-
  200.         net), and provider name (ANS, AT&T, etc.).  The intention of the
  201.         information is that it be useful and sufficient for the large
  202.         majority of users, but not necessarily satisfy every possible
  203.         policy requirement.  The information will allow the source to
  204.         choose the best destination provider given a user or policy
  205.         preference for the use of a particular source address.
  206.  
  207.  
  208.  
  209. 3.  NEW CLASS AND RESOURCE RECORD (RR) DEFINITIONS
  210.  
  211.  
  212.    A new class is introduced to support Pip queries. The class supports
  213.    all existing non IP-specific resource records in unmodified form, and
  214.    replaces the definition of IP-specific records, notably the IP
  215.    address record (type A), with RR types storing a Pip identifier and a
  216.    Pip address.  New RR types are introduced to support new information
  217.    that has no counterpart in IP, such as backbone descriptors and PDN
  218.    addresses.
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226. Pip WG, Expires December 30, 1993                               [Page 4]
  227.  
  228.  
  229.  
  230.  
  231.  
  232. INTERNET-DRAFT                  Pip DNS                        June 1993
  233.  
  234.  
  235. 3.1.  Storing Pip Identifiers and Address Information
  236.  
  237.  
  238.    The fundamental additions to DNS are the resource records storing Pip
  239.    identifiers and addresses. An important requirement for efficiency is
  240.    that the Pip identifier and addresses for a particular host be
  241.    retrievable in one DNS query. Another requirement is that Pip
  242.    addresses should be retrievable in one query given either a hostname
  243.    or Pip identifier. (Logically, a Pip identifier can be thought of as
  244.    just another name for a host.) The latter requirement means that we
  245.    cannot store the Pip identifiers and addresses based on the domain
  246.    name of a host, since looking up on a Pip ID would then require two
  247.    queries to DNS, one to map the Pip ID to a hostname (using a PTR
  248.    query), and one to map a hostname to a set of Pip addresses. Thus, we
  249.    define Pip identifiers to be indexed by canonical domain name, while
  250.    Pip addresses are stored per Pip identifier. These mappings have the
  251.    additional advantage that communication with IP-only hosts during
  252.    transition is supported transparently.  (See Section 3.5).  A draw-
  253.    back of this approach is that if hosts are allocated multiple Pip
  254.    IDs, addresses will be stored redundantly, once for each Pip ID. If
  255.    this is a problem, we can introduce canonical Pip IDs and aliases as
  256.    is done for host domain names.  We assume for now that hosts only
  257.    have one Pip ID.
  258.  
  259.    Thus, two resource records are needed: one to store a Pip identifier
  260.    and one to store a Pip address.  The IP type A RR is replaced by a
  261.    resource record that stores a Pip identifier instead of an IP
  262.    address. We define a Pip type A query to return the Pip ID as an
  263.    answer and the Pip addresses associated with the Pip ID as additional
  264.    information.  The type A resource record for the Pip class has the
  265.    following format (more detailed definitions of the data fields of
  266.    this and other Pip RRs are given in the Appendix):
  267.  
  268.    <owner>  <ttl>  Pip  A  <Pip ID>
  269.  
  270.    The <owner> of the RR is the domain name of a host.  In a RR, <Pip
  271.    ID> is a 64-bit word.  In the master file, a Pip identifier is
  272.    represented in its textual format, which consists of eight 2-digit
  273.    hex numbers separated by dots[1].
  274.  
  275.    The Pip address RR for the Pip class is defined as follows:
  276.  
  277.    <owner>  <ttl>  Pip  ADDR  <subtype> <data>
  278.  
  279.    The <owner> is an inverse lookup name based on a Pip identifier.
  280.  
  281.  
  282.  
  283. Pip WG, Expires December 30, 1993                               [Page 5]
  284.  
  285.  
  286.  
  287.  
  288.  
  289. INTERNET-DRAFT                  Pip DNS                        June 1993
  290.  
  291.  
  292.    (Inverse lookup domains are discussed in the following section.)
  293.    Several types of address information can be stored in this resource
  294.    record. The <subtype> field is a 16-bit integer and is used to dis-
  295.    tinguish between them. The most common data field comprises a Pip
  296.    address, denoted by subtype 1. Pip addresses are encoded in RRs as a
  297.    sequence of 32-bit words, as described more fully in the Appendix. In
  298.    the master file, a subtype is written as an integer, and the Pip
  299.    address in its textual format, which is a list of numbers, separated
  300.    by commas (to indicated changes in metalevel) and dots (to indicate
  301.    changes in level of hierarchy or different providers in a route frag-
  302.    ment)[2].
  303.  
  304.    The above definitions are used to store the fundamental information:
  305.    Pip identifiers and addresses. As already mentioned, we choose to use
  306.    DNS to store other types of addressing information too, to support
  307.    mobility and use of Public Data Networks. Moreover, we would like all
  308.    address information to be returned in one query. Thus, the ADDR field
  309.    has been defined to include a subtype field as shown above to enable
  310.    an ADDR query to return more information than just "ordinary" Pip
  311.    addresses. (If, after experimentation, this is found to be unneces-
  312.    sary, the subtype field should be removed and separate resource
  313.    record types used.) A subtype of 2 indicates that the data field is
  314.    the Pip ID of a mobile address server for the <owner>. Type ADDR
  315.    additional section processing is performed on the Pip ID of the
  316.    mobile address server to yield its addresses. A mobile address server
  317.    should not itself be mobile, but if the database indicates that it
  318.    is, this should be ignored by the name server when answering an ADDR
  319.    query (to avoid circularities). To support the storage of PDN
  320.    addresses, Pip addresses are defined to cause additional section pro-
  321.    cessing to yield a PDN address. PDN resource records are discussed
  322.    below.
  323.  
  324.  
  325.  
  326. 3.2.  Storing Public Data Network Addresses
  327.  
  328.  
  329.    The PDNA RR has the following form:
  330.  
  331.    <owner>  <ttl>  <class>  PDNA  <PDN-addr>
  332.  
  333.    PDNA records are stored per (subscriber part of) a Pip address. The
  334.    <owner> is an inverse lookup name based on a Pip address. (Inverse
  335.    lookup domains are discussed in Section 3.4).  In a master file, the
  336.    PDN address is written as a string of decimal digits.  This record
  337.  
  338.  
  339.  
  340. Pip WG, Expires December 30, 1993                               [Page 6]
  341.  
  342.  
  343.  
  344.  
  345.  
  346. INTERNET-DRAFT                  Pip DNS                        June 1993
  347.  
  348.  
  349.    causes no additional section processing.
  350.  
  351.  
  352.  
  353. 3.3.  Storing Backbone Information
  354.  
  355.  
  356.    A new resource record is added to store information about a provider,
  357.    called a backbone descriptor (type BBD). At the time of writing, the
  358.    record is expected to contain at least the following 4 fields for
  359.    each provider: the name, type, usage restriction classes and types of
  360.    service available. Since it is not clear at this stage precisely what
  361.    backbone information needs to be stored, we define the resource
  362.    record to be extensible by making the fields self-describing.
  363.  
  364.    The BBD RR has the following form:
  365.  
  366.    <owner>  <ttl>  <class>  BBD  <mnemonic field0> <mnemonic field1> <...>
  367.  
  368.    BBD records are stored per (top-level component of) a Pip address.
  369.    The <owner> is an inverse lookup name based on a Pip address. See
  370.    below for address domains. In a RR, <mnemonic> is an 8-bit integer
  371.    and <field> a <character-string>. In a master file, the BBD fields
  372.    are prefixed by a mnemonic integer which indicates the type of the
  373.    field that follows. The fields are character strings. This record
  374.    causes no additional section processing.
  375.  
  376.  
  377.  
  378. 3.4.  PIP-ADDR.ARPA and PIP-ID.ARPA domains
  379.  
  380.  
  381.    The two special domains, PIP-ADDR.ARPA and PIP-ID.ARPA are used to
  382.    map Pip addresses and Pip identifiers to regular domain names,
  383.    respectively. As with IP addresses, the PTR resource record type is
  384.    used to query this mapping. The PTR query type causes no additional
  385.    section processing.
  386.  
  387.    Pip address domain names are represented by a sequence of hex labels
  388.    in reverse order with the suffix PIP-ADDR.ARPA. The labels correspond
  389.    to each component of an address and are separated by dots and commas,
  390.    in the same way as defined for the textual representation of Pip
  391.    addresses[2].  Pip identifier domain names are represented by hex
  392.    labels in reverse order, with the suffix PIP-ID.ARPA.  These labels
  393.    are determined from the hierarchical structure of the Pip
  394.  
  395.  
  396.  
  397. Pip WG, Expires December 30, 1993                               [Page 7]
  398.  
  399.  
  400.  
  401.  
  402.  
  403. INTERNET-DRAFT                  Pip DNS                        June 1993
  404.  
  405.  
  406.    identifier[1].  Identifier labels are separated by dots.
  407.  
  408.    The PIP-ID.ARPA domain is also used to map Pip identifiers to Pip
  409.    addressing information (ADDR type), while the PIP-ADDR.ARPA domain is
  410.    also used to map Pip addresses to backbone descriptors (BBD type) and
  411.    PDN attachment point addresses (PDNA type).
  412.  
  413.  
  414.  
  415.  
  416. 3.5.  DNS Support for IP/Pip transition.
  417.  
  418.  
  419.    NOTE: This section assumes IPAE transition. A new transition scheme
  420.    is being proposed for Pip, and this will be taken account of in a
  421.    later draft.
  422.  
  423.    We mentioned in Section 2 that we choose to use DNS to store the
  424.    addresses of translating routers for IP hosts.  The name service can
  425.    be used to support IP/Pip host transition by assigning IP hosts spe-
  426.    cial "IP-only" Pip IDs (identifiers with a well-known prefix indicat-
  427.    ing the named host is IP-only, and containing the IP address in the
  428.    low-order 32 bits) and using the address of the appropriate translat-
  429.    ing router as their "normal" Pip address.  Note that no extra RR
  430.    types are needed to perform this mapping; the translator addresses
  431.    are stored in place of a host's Pip addresses, transparently to DNS
  432.    and the resolver. (If the name server or resolver does need to know
  433.    that a host is IP for any reason, this can be determined from the
  434.    special prefix of the Pip identifier given to the host.) Also, note
  435.    that storing the addresses of the translator as the Pip addresses of
  436.    IP hosts (rather than storing the Pip ID of the translator and having
  437.    that map onto the translator addresses) does not duplicate informa-
  438.    tion in the database. In Pip, the addresses used for translation are
  439.    different from those used to address the translating machine as a
  440.    destination host.
  441.  
  442.  
  443.  
  444.  
  445. 4.  TRANSITION FROM IP NAME SERVICE TO PIP NAME SERVICE
  446.  
  447.  
  448.    During transition, we expect that zones with a Pip host have a Pip
  449.    name server.  (A Pip name server is one that is authoritative for Pip
  450.    information. Note that this does not necessarily mean the name server
  451.  
  452.  
  453.  
  454. Pip WG, Expires December 30, 1993                               [Page 8]
  455.  
  456.  
  457.  
  458.  
  459.  
  460. INTERNET-DRAFT                  Pip DNS                        June 1993
  461.  
  462.  
  463.    can communicate using Pip.) However, we do not expect zones that con-
  464.    tain only IP hosts to deploy a Pip name server, at least not immedi-
  465.    ately.  Moreover, we do not think it practical to expect other sites
  466.    to maintain Pip name servers for IP sites. (As stated in the section
  467.    above, servers are needed to store Pip addresses of translating
  468.    routers for IP zones, but we expect that the amount of information
  469.    needed for this purpose is significantly smaller than the database of
  470.    each IP zone.) Thus, the Pip naming tree will not be complete for
  471.    some period of time.  This has a number of repercussions for
  472.    resolvers.
  473.  
  474.    First, recursive resolvers (typically, found in name servers) must
  475.    have access to both Pip and IP name servers and must be able to
  476.    determine which name servers support Pip and which IP.  Class infor-
  477.    mation is provided in name server (NS) resource records.  In order to
  478.    obtain NS RRs of a particular class, however, a recursive resolver
  479.    must ask parent name servers the appropriate class of query.  Such
  480.    information must be gleaned by trial and error.  (NS resource records
  481.    are not usually explicitly requested - they are returned as a by-
  482.    product of a query for some other resource record to a non-
  483.    authoritative server. When a Pip query is made to a non-authoritative
  484.    name server, Pip NS RRs will be returned in the authoritative section
  485.    of a response. When an IP query is made, IP NS RRs will be returned
  486.    in the authoritative section of a response.) Note that in general an
  487.    address request might require 3 queries if the host being looked up
  488.    is IP-only, assuming a Pip class query is made first: failure of a
  489.    Pip class query will require a separate IP class query. Since we are
  490.    using DNS to store addresses of translating routers for IP hosts,
  491.    another lookup is required to get the Pip address of the translating
  492.    router.
  493.  
  494.    The efficiency of recursive resolvers can be improved in a number of
  495.    ways. The fact that a zone does NOT support a certain class should be
  496.    cached and timed out in the same way as name server resource records
  497.    are.  This prevents future queries during the time-to-live period
  498.    from having to rediscover this (negative) information. Also, for IP
  499.    hosts in zones with Pip name servers, the number of queries can be
  500.    reduced by assigning the IP hosts special Pip identifiers (as
  501.    explained in Section 3.5) and storing these Pip identifiers and the
  502.    addresses of the appropriate translating router in the Pip database.
  503.    Pip address queries for these hosts will succeed in one query.
  504.  
  505.    The fact that the Pip naming tree is not complete also affects the
  506.    efficiency of operation of stub resolvers, typically found in Pip
  507.    hosts. (A stub resolver relies on a name server (with a recursive
  508.  
  509.  
  510.  
  511. Pip WG, Expires December 30, 1993                               [Page 9]
  512.  
  513.  
  514.  
  515.  
  516.  
  517. INTERNET-DRAFT                  Pip DNS                        June 1993
  518.  
  519.  
  520.    resolver) to perform resolution as it is, by definition, incapable of
  521.    following referrals. It usually does not cache any information.) Stub
  522.    resolvers are not as amenable to optimization as they do not in gen-
  523.    eral cache name server RRs and thus do not have any information to
  524.    indicate what class of query to make when looking up the address of a
  525.    host.  A Pip stub resolver can be assisted by having the name server
  526.    it relies on to resolve queries to decide on which class of query to
  527.    perform. As explained above, a name server can potentially do a much
  528.    better job of determining which class of query to make, since it
  529.    caches name server records and knows what classes of requests a name
  530.    server supports, or at least knows how to find out in the absence of
  531.    such information.  Hence, it is more efficient for stub resolvers on
  532.    Pip hosts to always make Pip class queries and have the name servers
  533.    decide what class of query to make in the event of a referral and
  534.    perform any translation necessary to return a valid Pip response.
  535.    When the name server is referred to a Pip name server, no translation
  536.    is required. When the name server is referred to an IP-only name
  537.    server, the query must be translated into an IP query. On receiving a
  538.    response from the IP name server, the query must be translated back
  539.    to that of the original class, and the resource records formatted to
  540.    appear as valid Pip records.  In particular, all IP addresses must be
  541.    translated to appear as Pip identifiers with their associated Pip
  542.    addresses. To achieve this, the IP hosts are given special Pip iden-
  543.    tifiers (based on their IP addresses). These identifiers are then
  544.    looked up separately to retrieve the corresponding Pip addresses for
  545.    the IP hosts. The addresses are the addresses of the IP hosts'
  546.    translating routers.
  547.  
  548.  
  549.  
  550.  
  551. 5.  TIMESTAMPED QUERIES
  552.  
  553.  
  554.    In Pip, hosts are able to tell when the address of a destination host
  555.    is out-of-date.  This  will typically happen when a destination
  556.    changes provider (its address prefix will change). A host is able to
  557.    tell that the destination address has changed since, in Pip, the
  558.    provider's routers are configured to return a PCMP Packet Not
  559.    Delivered Message for an address with an old prefix for some period
  560.    of time after the change occurs[4]. To enable DNS to still allow high
  561.    enough time-to-live values for efficient operation, but yet still
  562.    maintain connectivity with hosts whose addresses have changed, we
  563.    propose that DNS be enhanced to allow a resolver to ask for later
  564.    versions of resource records than it currently has cached.
  565.  
  566.  
  567.  
  568. Pip WG, Expires December 30, 1993                              [Page 10]
  569.  
  570.  
  571.  
  572.  
  573.  
  574. INTERNET-DRAFT                  Pip DNS                        June 1993
  575.  
  576.  
  577.    The proposed scheme involves assigning version numbers to resource
  578.    records, which are incremented whenever the information is changed.
  579.    In a query, a resolver specifies the version number of the RRs
  580.    requested, and the name server responds with RRs that have version
  581.    numbers greater than that specified. If the name server does not have
  582.    the data locally or has an old version, it must refer the request to
  583.    name servers "closer" to the answer in the normal way.  If the name
  584.    server is authoritative for RRs requested, it always answers the
  585.    question independent of the version number requested.
  586.  
  587.    The version  numbers could be timestamps, in which case they may have
  588.    additional semantic significance, e.g. they may indicate when the RR
  589.    was added to the database or the last time the RR was modified.
  590.    Alternatively, they could be sequence numbers similar to zone serial
  591.    numbers. Other proposed extensions to DNS also require RR version
  592.    information, such as incremental zone transfers mentioned recently on
  593.    the namedroppers mailing list. This scheme requires that version
  594.    information be comparable with zone serial numbers. If both times-
  595.    tamped queries and incremental zone transfers are to be added to DNS,
  596.    then it would make sense to use a common definition. Whatever the
  597.    form of version numbers chosen, there must be a way for a requestor
  598.    to ask for any version of a RR, that is, the first version found.
  599.    Such a query would be used by a resolver when requesting a resource
  600.    record for the first time.
  601.  
  602.  
  603.  
  604. 5.1.  Changes to Message Format
  605.  
  606.  
  607.    According to RFC 1035, there are three sets of queries that can be
  608.    made to DNS, standard queries, inverse queries and status queries.
  609.    When a query is made, a field in the header, called the operation
  610.    code, indicates what kind of query it is.  To enable timestamped
  611.    queries, a new version of the standard query is proposed.
  612.  
  613.    The following new operation code is thus defined:
  614.  
  615.       Op Code         Value and Meaning
  616.       -------         -----------------
  617.       QUERY2           4      Timestamped queries
  618.  
  619.  
  620.    The format of messages will need to change to support timestamped
  621.    queries. The header will remain the same to maintain backwards
  622.  
  623.  
  624.  
  625. Pip WG, Expires December 30, 1993                              [Page 11]
  626.  
  627.  
  628.  
  629.  
  630.  
  631. INTERNET-DRAFT                  Pip DNS                        June 1993
  632.  
  633.  
  634.    compatibility, but the new operation code will indicate that the for-
  635.    mat of the question section and the definitions of RRs have been
  636.    extended.
  637.  
  638.    The current definition of the question section consist of three
  639.    fields: the name of the domain being queried, the type of the query
  640.    (typically a RR type) and the class of the query (typically Inter-
  641.    net). An extra field will be added to include the version informa-
  642.    tion. The precise form of this field is not yet defined, but it will
  643.    likely be a 32-bit field. The question section has the following for-
  644.    mat (original from RFC 1035):
  645.  
  646.  
  647.         +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
  648.         /                    QNAME                      /
  649.         /                                               /
  650.         +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
  651.         |                    QTYPE                      |
  652.         +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
  653.         |                    QCLASS                     |
  654.         +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
  655.         |                    VERSION                    |
  656.         |                                               |
  657.         +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
  658.  
  659.    where:
  660.  
  661.    QNAME        <domain-name>
  662.    QTYPE        A 16-bit field specifying the type of the query
  663.    QCLASS       A 16-bit field specifying the class of the query
  664.    VERSION      A 32-bit field specifying that the answer must be a later
  665.                 version than that specified. A version number of zero
  666.                 is used to indicate that a version number is
  667.                 not known or that a resource record with any version
  668.                 number is requested.
  669.  
  670.  
  671. RRs will also be extended to include the version information field.
  672. Currently, RRs consists of the name of the domain the record describes,
  673. the type of the record, its class, the time-to-live field, which indi-
  674. cates how long the RR can be cached, as well as the data and its length.
  675. A 32-bit version field could follow the TTL field as follows (original
  676. RR format from RFC 1035):
  677.  
  678.  
  679.  
  680.  
  681.  
  682. Pip WG, Expires December 30, 1993                              [Page 12]
  683.  
  684.  
  685.  
  686.  
  687.  
  688. INTERNET-DRAFT                  Pip DNS                        June 1993
  689.  
  690.  
  691.         +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
  692.         /                    NAME                       /
  693.         /                                               /
  694.         +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
  695.         |                    QTYPE                      |
  696.         +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
  697.         |                    QCLASS                     |
  698.         +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
  699.         |                    TTL                        |
  700.         |                                               |
  701.         +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
  702.         |                    VERSION                    |
  703.         |                                               |
  704.         +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
  705.         |                    RDLENGTH                   |
  706.         +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
  707.         /                    RDATA                      /
  708.         /                                               /
  709.         +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
  710.  
  711.    where:
  712.  
  713.    NAME         A <domain-name> to which this RR pertains
  714.    QTYPE        A 16-bit field specifying the type of the RR.
  715.                 This field specifies the meaning of the data in the
  716.                 RDATA field.
  717.    QCLASS       A 16-bit field specifying the class of the data
  718.    TTL          A 32-bit unsigned integer that specifies the time
  719.                 interval (in seconds) that the resource record may be
  720.                 cached before it should be discarded.
  721.    VERSION      A 32-bit field specifying the version number of the
  722.                 data in the RDATA field.
  723.    RDLENGTH     An unsigned 16-bit integer specifying the length of
  724.                 the octets of the RDATA field.
  725.    RDATA        A variable-length string of octets that describes the
  726.                 resource. The format of this information varies
  727.                 according to the TYPE and CLASS of the resource record.
  728.  
  729.  
  730. 6.  APPENDIX
  731.  
  732.  
  733.    The Pip class is chosen to have value 5.  The following types of
  734.    resource records are added to DNS (or redefined) to store Pip infor-
  735.    mation. The type A and ADDR resource records are Pip-specific. The
  736.  
  737.  
  738.  
  739. Pip WG, Expires December 30, 1993                              [Page 13]
  740.  
  741.  
  742.  
  743.  
  744.  
  745. INTERNET-DRAFT                  Pip DNS                        June 1993
  746.  
  747.  
  748.    other resource records can be used by any class.
  749.  
  750.       Type            Value and Meaning
  751.       ----            -----------------
  752.       A               0       Redefined to store Pip identifier
  753.       ADDR            64      Different types of address information,
  754.                               such as Pip addresses and names of
  755.                               mobile address servers
  756.       BBD             65      Backbone descriptor
  757.       PDNA            66      PDN attachment point address
  758.  
  759.  
  760.  
  761.  
  762. 6.1.  New Resource Record (RR) data definitions
  763.  
  764.  
  765.    Below we define the data fields for each of the new Pip resource
  766.    records.  Some data fields are defined in terms of <domain-name>s and
  767.    <character-string>s. These two field types have the same definitions
  768.    as stated in RFC 1035. We also define an <octet-string>, which is
  769.    similar to a <character-string>, but consists of a string of unsigned
  770.    8-bit fields only.  Two other new fields include the Pip identifier
  771.    and the Pip address. A <pip-identifier> is a 64-bit field containing
  772.    a Pip ID represented in its  modified ASN.1 notation[1].  A <pip-
  773.    address> consists of a sequence of 16-bit numbers called FTIFs (For-
  774.    warding Table Index Fields), each representing a level of the hierar-
  775.    chy, or a provider in a route fragment.  A Pip address is represented
  776.    in a RR by a sequence of 32-bit words, each containing an FTIF, and
  777.    the metalevel, if appropriate, as shown below:
  778.  
  779.  
  780.  
  781.         +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
  782.         /    ML     | reserved  |       FTIF            /
  783.         +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
  784.  
  785.    where:
  786.  
  787.    ML           An 8-bit field containing the metalevel of this FTIF.
  788.                 This field is only set in the first FTIF of each
  789.                 metalevel (zero otherwise).
  790.    <reserved>   An 8-bit field reserved for later use. Should be zero.
  791.    FTIF         A 16-bit field containing the FTIF value.
  792.  
  793.  
  794.  
  795.  
  796. Pip WG, Expires December 30, 1993                              [Page 14]
  797.  
  798.  
  799.  
  800.  
  801.  
  802. INTERNET-DRAFT                  Pip DNS                        June 1993
  803.  
  804.  
  805.    The data format for Pip identifiers (type A), addresses (type ADDR),
  806.    backbone descriptors (type BBD) and PDN addresses (type PDNA) follow:
  807.  
  808.  
  809.  
  810. A data format
  811.  
  812.         +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
  813.         |                  PIPID                           |
  814.         |                                                  |
  815.         +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
  816.  
  817.    where:
  818.  
  819.    PIPID   A <pip-identifier> associated with the specified
  820.            <domain-name>
  821.  
  822.    Type A RRs cause type ADDR additional section processing.
  823.  
  824.  
  825. ADDR data format
  826.  
  827.         +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
  828.         |      reserved         |     subtype           |
  829.         +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
  830.         /                     data                      /
  831.         +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
  832.  
  833.  
  834.    where:
  835.  
  836.    <reserved>   A 16-bit field reserved for later use. Should be zero.
  837.    <subtype>    A 16-bit integer indicating the type of data
  838.                 to be found in the data field.
  839.    <data>       In the case of subtype 1, a <pip-address> of
  840.                 the specified owner.
  841.                 In the case of subtype 2, the <pip-identifier>
  842.                 of the mobile address server for the
  843.                 specified owner.
  844.  
  845.    ADDR queries do cause additional section processing. In the case of
  846.    subtype 1, PDNA queries are performed on Pip addresses. In the case
  847.    of subtype 2, ADDR queries are performed on Pip identifiers.
  848.    Note that an ADDR query will not be performed again as part of
  849.    additional section processing  if the mobile server itself has a
  850.  
  851.  
  852.  
  853. Pip WG, Expires December 30, 1993                              [Page 15]
  854.  
  855.  
  856.  
  857.  
  858.  
  859. INTERNET-DRAFT                  Pip DNS                        June 1993
  860.  
  861.  
  862.    mobile address server.
  863.  
  864.  
  865. BBD data format
  866.  
  867.         +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
  868.         / MNEMONIC  |         BBDFIELD                  /
  869.         +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
  870.         /                                               /
  871.         /                                               /
  872.         +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
  873.  
  874.    where:
  875.  
  876.    MNEMONIC     An 8-bit field indicating the type of information
  877.                 contained in BBDFIELD.
  878.    BBDFIELD     A <character-string> that contains information of
  879.                 the corresponding type.
  880.  
  881.    Standard values for mnemonics must still be defined.
  882.  
  883.    This record causes no additional section processing.
  884.  
  885.  
  886. PDNA data format
  887.  
  888.         +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
  889.         /               PDNADDR                         /
  890.         /                                               /
  891.         +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
  892.  
  893.    where:
  894.  
  895.    PDNADDR      An <octet-string> that specifies the public
  896.                 data network attachment point address in
  897.                 encoded form as a sequence of 4-bit digits.
  898.  
  899.    This record causes no additional section processing.
  900.  
  901.  
  902.  
  903. References
  904. [1]  Francis, "Pip Identifiers", Internet-Draft
  905. [2]  Francis, "Pip Address Conventions", Internet-Draft
  906. [3]  Francis, "Pip Near-term Architecture", Internet-Draft
  907. [4]  Francis, "Pip Host Operation", Internet-Draft
  908.  
  909.  
  910. Pip WG, Expires December 30, 1993                              [Page 16]
  911.